// 1. 引入
import Vue from 'vue'
import Vuex from 'vuex'

// 2. 注册使用
Vue.use(Vuex)

// 3. 创建仓库对象
const store = new Vuex.Store({
  // 开启严格模式
  // 注意: 上线后要关闭严格模式
  // 因为开启严格模式是会消耗性能的
  strict: true,
  /**
   核心模块1: 存储所有需要共享的数据
  */
  state: {
    count: 100,
    title: '大标题'
  },
  /**
   核心模块2: 提供了所有修改state中数据的方法
   注意点:
   1) state中的所有数据只能通过mutations对象中的方法去修改
   2) mutations对象中的所有方法第一个参数就是state
   */
  mutations: {
    // 方法中, 只能通过一个形参接收数据
    // 如果要传递多个数据, 可以包装成一个对象或者数组
    addCount (state, obj) {
      console.log(obj)
      state.count += obj.num
    }
  }
})

// 4. 导出仓库
export default store
